package com.sbtr.util;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import net.coobird.thumbnailator.Thumbnails;

/**
 * 图片处理工具类
 * @author oujh5
 *
 */
public class ImageOperUtil {
	
	private ImageOperUtil() {}
	private static Logger logger = LoggerFactory.getLogger(ImageOperUtil.class);

	/**
	 * 生成缩略图，按比例缩放
	 * @param imageIn		原图输入流
	 * @param wide			缩放后宽度
	 * @param high			缩放后高度
	 * @param targetFile	缩略图生成后的目标文件
	 * @return
	 */
	public static boolean genThumbnail(InputStream imageIn, int wide, int high, File targetFile){
		try{
			Thumbnails.of(imageIn).size(wide, high).toFile(targetFile);
		}catch(IOException e){
			logger.error("生成缩略图异常", e);
			return false;
		}finally{
			if(imageIn != null){
				try {
					imageIn.close();
				} catch (IOException e) {
					logger.error("生成缩略图异常", e);
				}
			}
		}
		return true;
	}
	
	/**
	 * 根据文件名判断此文件是否为图片文件
	 * @param fileName
	 * @return
	 */
	public static boolean isImage(String fileName){
		
		if(StringUtils.isNotEmpty(fileName)){
			Set<String> imageSuffix = new HashSet<>(Arrays.asList(".jpg", ".png", ".jpeg"));
			for(String suffix : imageSuffix){
				if(fileName.endsWith(suffix)){
					return true;
				}
			}
		}
		return false;
	}
}
